#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Created on __DATE__
# Project: __PROJECT_NAME__

from pyspider.libs.base_handler import *


class Handler(BaseHandler):
    #全局配置
    crawl_config = {
    }

    @every(minutes=24 * 60)
    def on_start(self):
        self.crawl('__START_URL__', callback=self.index_page)

    #初始页面解析
    @config(age=10 * 24 * 60 * 60)#age 是任务的有效时间（s）。如果某个任务在有效时间内且已经被执行，则它不会重复执行
    def index_page(self, response):
        for each in response.doc('a[href^="http"]').items():#使用辅助器替换a[href^="http"]
            self.crawl(each.attr.href, callback=self.detail_page) #callback 是回调函数，指定用哪个方法来解析
            #如果需要，添加代码循环采集下一页
            #next = response.doc('.next').attr.href #定位到翻页页的链接的选择器
            #self.crawl(next, callback=self.index_page)

    #详情页面解析
    @config(priority=2)
    def detail_page(self, response):
        #定义最终要提取的数据字段
        return {
            "url": response.url,
            "title": response.doc('title').text(),
        }
